package w14;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;

public class JDKWindow extends JFrame {
	JTextField javaSourceFileName; // 输入Java源文件
	JTextField javaMainClassName; // 输入主类名
	JButton compile, run, edit;
	HandleActionEvent listener;

	public JDKWindow() {
		edit = new JButton("用记事本编辑源文件");
		compile = new JButton("编译");
		run = new JButton("运行");
		javaSourceFileName = new JTextField(10);
		javaMainClassName = new JTextField(10);
		setLayout(new FlowLayout());
		add(edit);
		add(new JLabel("输入源文件名:"));
		add(javaSourceFileName);
		add(compile);
		add(new JLabel("输入主类名:"));
		add(javaMainClassName);
		add(run);
		listener = new HandleActionEvent();
		edit.addActionListener(listener);
		compile.addActionListener(listener);
		run.addActionListener(listener);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 750, 180);
	}

	class HandleActionEvent implements ActionListener { // 内部类实例做监视器
		public void actionPerformed(ActionEvent e) {
			if (e.getSource() == edit) {
				Runtime ce = Runtime.getRuntime();
				String name = javaSourceFileName.getText();
				File file = new File("c:/windows", "Notepad.exe " + name);
				try {
					ce.exec(file.getAbsolutePath());
				} catch (Exception exp) {
				}
			} else if (e.getSource() == compile) {
				CompileDialog compileDialog = new CompileDialog();
				String name = javaSourceFileName.getText();
				compileDialog.compile(name);
				compileDialog.setVisible(true);
			} else if (e.getSource() == run) {
				RunDialog runDialog = new RunDialog();
				String name = javaMainClassName.getText();
				runDialog.run(name);
				runDialog.setVisible(true);
			}
		}
	}
}
